iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0

What is SQL Injection?

SQL Injection 為攻擊者在應用程式的輸入框中插入惡意 SQL 查詢語句,目的是利用應用程式中存在的查詢漏洞來操控資料庫。這些漏洞通常存在於網頁的登入表單、搜尋框或其他可讓使用者輸入的地方。

常見的 SQL Injection:

  1. 單引號閉合
    當應用程式未能正確過濾輸入時,攻擊者可以使用單引號閉合查詢,並加入自己的 SQL 語句。例如,原本的 SQL 查詢語句如下:

    `SELECT * FROM users WHERE username = 'user' AND password = 'pass';`
    
    若攻擊者在 username 輸入 ' OR '1'='1,那麼查詢語句將變為:
    
    `SELECT * FROM users WHERE username = '' OR '1'='1' AND password = 'pass';`
    
    這樣即使密碼錯誤,查詢語句仍會返回結果,攻擊者可登入成功。
    
  2. Union-based
    將兩個不同表中的數據一起返回,並且通過應用程序顯示給使用者,讓攻擊者能夠看到未經授權的管理員資料。利用 UNION 關鍵字將多個 SQL 查詢合併。需要確定 資料的列數和類型,藉此讀取未授權的資料,例如:

    `SELECT name, email FROM users WHERE id = 1 UNION SELECT username, password FROM admins;`
    

開始進入今天的練習

LAB_1 - Web Gauntlet
https://ithelp.ithome.com.tw/upload/images/20240920/20169462KfnQywIdso.png

看到一個登入頁面,利用前面提到的方式繞過驗證。這邊藉由 filter.php 的頁面可以看到 Round1 不能使用的字元有 or,這邊將 admin 之後的密碼驗證註解掉,使用 admin'--,密碼隨意。
https://ithelp.ithome.com.tw/upload/images/20240920/20169462ShLmo2dceO.png

進到第二關,被 ban 掉的東西變多了,不能使用這些 like = --,於是換另外一種註解 /*,Username 輸入 admin'/
https://ithelp.ithome.com.tw/upload/images/20240920/20169462GldXlJk4MH.png

第三關被 ban 的字有 or and = like > < --,剛剛第二關使用的 payload 還可以繼續用,好耶
https://ithelp.ithome.com.tw/upload/images/20240920/20169462E4DHNBuiU6.png

第四關,越來越多限制了 orz,or and = like > < -- adminadmin 都不行惹。那如果把 admin 隔開呢?使用 || 來連接。
https://ithelp.ithome.com.tw/upload/images/20240920/201694622Df2wjVr4P.png

好耶!第五關。這些不能使用 or and = like > < -- union admin。不過剛剛第四關的東西好像還是可以用,繼續用 ouob
https://ithelp.ithome.com.tw/upload/images/20240920/20169462F9HBShlZTH.png

畫面叫我們可以到 filter.php 看看,發現 flag
https://ithelp.ithome.com.tw/upload/images/20240920/201694627inS8nfrT3.png

LAB_2 - Web Gauntlet 2
https://ithelp.ithome.com.tw/upload/images/20240920/20169462v901tKlltJ.png

還是這個頁面 XD,一樣先到題目給的 filter.php,一樣有被禁止的黑名單or and true false union like = > < ; -- /* */ admin。不能用註解的方式了,於是我們讓 Password 恆等於 true。Password 輸入 a' is not 'b
https://ithelp.ithome.com.tw/upload/images/20240920/201694622oFAwticTr.png

flag 順利拿到了
https://ithelp.ithome.com.tw/upload/images/20240920/20169462hUCBwtLIPB.png

今天的練習就到這邊,以下是參考資料,請搭配服用:
picoCTF web
picoCTF web 2
秒懂 SQL Injection
SQL Injection

內文如有錯誤,還請不吝指教~


上一篇
Day5 - [Web] Command Injection
下一篇
Day7 - [Crypto] 古典密碼學
系列文
新手村預備,CTF 小菜雞跌跌撞撞的旅程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言